This invention relates to distributed transaction processing.
Enterprise applications often require simultaneous access to distributed data that is shared among multiple resources, such as databases and servers. In order to maintain the integrity of data in a distributed system, an enterprise application typically treats all the distributed resources as a single unit of work. That is, all the participating operations on the distributed resources succeed, or fail and recover, together. One way to achieve maintenance of data integrity in a distributed system is to use transaction processing in the system.
Transaction processing can be described as a type of computer processing in which a computer responds to requests on an immediate basis. Each request is a transaction. Most large enterprise applications in the areas of financing, banking, electronic commerce, and so on, rely on transaction processing for delivering their business functionality. A transaction can be described to be atomic, consistent, isolated, and durable, (the “ACID properties”). Atomic transactions are done or undone completely and unambiguously. Consistent transactions preserve all invariant properties defined on associated data. Upon completion of a successful transaction, the associated data is in a consistent state. Isolated transactions execute independently of other transactions that may be executing in the same environment. Durable transactions have effects that are always persistent.
A variety of different transaction processing models exist. The X/Open Distributed Transaction Processing (DTP) model is a distributed transaction processing model proposed by the Open Group—a vendor consortium. The X/Open DTP model is a standard among most of the commercial vendors in the transaction processing and database domains. Some of the other models include: the Object Transaction Service (OTS)—a distributed transaction processing service specified by the Object Management Group (OMG); the Java Transaction Service (JTS) and the Java Transaction API (JTA), specified by Sun Microsystems Inc.; the Microsoft Transaction Server (MTS)—a component based transaction server for components based on Microsoft's Component Object Model (COM); and Enterprise Java Beans (EJB)—a technology specification from Sun Microsystems Inc. that specifies a framework for building component-based distributed applications.